package com.luxsoft.siipap.em.replica.online;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;

import com.luxsoft.siipap.em.replica.model.Registro;

/**
 * Procesa un archivo de replica para producir n registros (instancias
 * de bean {@link Registro})
 * 
 * @author Ruben Cancino
 *
 */
public class GeneradorDeRegistros {
	
	/**
	 * Lee todo el contenido de un archivo de texto de replica y lo convierte
	 * a String ASCII adecuado para ser analizado 
	 * 
	 * @param source
	 * @return
	 * @throws IOException
	 */
	public String toString(final File source) throws IOException{
		final FileInputStream io=new FileInputStream(source);
		final Reader input=new InputStreamReader(io,"ISO-8859-1");
		
		final BufferedReader buf=new BufferedReader(input);
		StringBuffer buffer=new StringBuffer();
		String val=buf.readLine();
		while(val!=null){
			buffer.append(val);
			val=buf.readLine();
		}
		buf.close();
		input.close();
		io.close();
		return buffer.toString();
	}
	
	/**
	 * Descompone un archivo texto de replica en strings cada uno siendo un registro
	 * @param source
	 * @return
	 * @throws IOException
	 */
	public String[] procesar(final File source) throws IOException{
		return toString(source).split("@");
	}

}
